﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;

namespace Watson.TemporaryFilesDeleter
{
    /// <summary>
    /// An interface for filtering a collection of files against a criterion.
    /// </summary>
    public interface IFileFilter
    {
        #region Methods

        /// <summary>
        /// Filters a collection of files against a criterion.
        /// </summary>
        /// <param name="files">
        /// A collection of files to filter.
        /// </param>
        /// <returns>
        /// System.Collections.Generic.ICollection&gt;System.IO.FileInfo&lt;
        /// <para>
        /// A filtered collection of files. Files that did not satisfy the
        /// criterion are omitted from the input collection.
        /// </para>
        /// </returns>
        /// <exception cref="System.ArgumentNullException">
        /// <paramref name="files"/> was null.
        /// </exception>
        ICollection<FileInfo> ApplyFilter(ICollection<FileInfo> files);

        #endregion
    }
}
